home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / include / nessus / ntcompat.h < prev    next >
C/C++ Source or Header  |  2006-06-13  |  3KB  |  151 lines

  1. #ifndef NESSUS_NT_COMPAT__
  2. #define NESSUS_NT_COMPAT__
  3. /*
  4.  * This file is subject to the GPL
  5.  *
  6.  * (c) 1998 Renaud Deraison <deraison@worldnet.fr>
  7.  *
  8.  * ntcompat.h : redefinition of several system calls to provide
  9.  *              NT compatibility to Nessus
  10.  *
  11.  */
  12.  
  13. #ifdef NESSUSNT
  14. #include <windows.h>
  15. #endif
  16.  
  17.  
  18. /*
  19.  * Thread management
  20.  */
  21.  
  22. typedef int(*thread_func_t)(void *);
  23.  
  24. #ifdef USE_NT_THREADS
  25. typedef HANDLE nthread_t;
  26. #define EXIT(x) ExitThread(x)
  27. #define _EXIT(x) ExitThread(x)
  28. #define DO_EXIT(x) exit(x)
  29. #define TERMINATE_THREAD(x) TerminateThread(x,0)
  30. #endif /* US_NT_THREADS */
  31.  
  32. #ifdef USE_FORK_THREADS
  33. typedef int nthread_t;
  34. #define EXIT(x) exit(x)
  35. #ifdef HAVE__EXIT
  36. #define _EXIT(x) _exit(x)
  37. #else
  38. #define _EXIT(x) exit(x)
  39. #endif
  40. #define DO_EXIT(x) exit(x)
  41. #define TERMINATE_THREAD(x) {if(x > 0)kill(x, SIGTERM);}
  42. #endif /* USE_FORK_THREADS */
  43.  
  44. #ifdef USE_PTHREADS
  45. /*
  46.  * I hate pthreads
  47.  */
  48. typedef struct {
  49.    pthread_t thread;
  50.    pthread_mutex_t mutex;
  51.    int ready;
  52.    } _nthread_t,*nthread_t;
  53.    
  54. struct thread_args {
  55.     void * arg;
  56.     pthread_mutex_t * mutex;
  57.     thread_func_t func;
  58.     nthread_t thread;
  59.     };
  60. #define EXIT(x) exit_pthread(x)
  61. #define _EXIT(x) EXIT(x)
  62. #define DO_EXIT(x) exit(x)
  63.  
  64. #ifdef HAVE_PTHREAD_CANCEL
  65. #define TERMINATE_THREAD(x) {pthread_cancel(x->thread);pthread_detach(x->thread);}
  66. #else
  67. #warning "Your system lacks pthread_cancel() ! Using the pthreads is not recommanded"
  68. #define TERMINATE_THREAD(x)
  69. #endif /* HAVE_PTHREAD_CANCEL */
  70. #endif /* USE_PTHREADS */
  71.  
  72.  
  73.  
  74. /*
  75.  * External libraries management
  76.  */
  77. #ifdef NESSUSNT
  78. typedef HMODULE ext_library_t;
  79. #define LOAD_FUNCTION(x,y) GetProcAddress(x,y)
  80. #define LOAD_LIBRARY(x) LoadLibrary(x)
  81. #define LIB_LAST_ERROR WSAGetLastError
  82. #define CLOSE_LIBRARY(x) FreeLibrary(x)
  83. #else
  84. typedef void * ext_library_t;
  85. #define LOAD_FUNCTION(x,y) dlsym(x,y)
  86.  
  87. #ifdef RTLD_NOW
  88. #define LOAD_LIBRARY(x) dlopen(x,RTLD_NOW)
  89. #else
  90. #define LOAD_LIBRARY(x) dlopen(x, 1)
  91. #endif /* not defined(RTLD_NOW) */
  92.  
  93. #define LIB_LAST_ERROR dlerror
  94. #define CLOSE_LIBRARY(x) dlclose(x)
  95. #endif /* defined(NESSUSNT) */
  96.  
  97.  
  98. /*
  99.  * Misc. functions
  100.  */
  101. #ifdef NESSUSNT
  102. #ifndef __STDC__
  103. #define __STDC__ 1
  104. #endif
  105. #ifndef USE_GTK
  106. /* so we are not on the nessus client */
  107. #define getpid(x) GetCurrentProcessId(x)
  108. #define close(x)  closesocket(x)
  109. #endif /* USE_GTK */
  110. #define ioctl(x,y,z) ioctlsocket(x,y,z)
  111. #define signal(x,y)
  112. #define alarm(x)
  113. #define chmod(x,y)
  114. #define getopt(x,y,z) EOF
  115. typedef unsigned int u_int32_t;
  116. typedef unsigned short n_short;
  117. typedef unsigned short u_short;
  118. typedef unsigned short u_int16_t;
  119. typedef unsigned long n_time;
  120. #define ICMP_ECHO 8
  121. #define ICMP_ECHOREPLY 0
  122. #endif /* defined(NESSUSNT) */
  123.  
  124. #ifndef NESSUSNT
  125. #define print_error printf
  126. #endif
  127.  
  128.  
  129.  
  130. #ifdef NESSUSNT
  131. #define DllExport __declspec (dllexport)
  132. #define DllImport __declspec  (dllimport)
  133. #define PlugExport DllExport
  134.  
  135. #ifdef EXPORTING
  136. #define ExtFunc DllExport
  137. #else
  138. #define ExtFunc DllImport
  139. #endif /* defined(EXPORTING) */
  140.  
  141. #else /* !NESSUSNT */
  142.  
  143. #define PlugExport
  144. #define DllExport
  145. #define DllImport
  146. #define ExtFunc
  147.  
  148. #endif /* defined(NESSUSNT) */
  149.  
  150. #endif /* defined(NESSUS_NT_COMPAT_H) */
  151.